package com.fabriciojf.dbunit;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.dbunit.DatabaseUnitException;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.IDatabaseConnection;

/**
 * Classe para retornar a conexao jdb com o banco de dados a ser utilizada pelo DBUnit
 *
 * @author Fabricio S Costa
 * @since 01/08/2010
 * @version 1.0
 */
public class JDBCConnection {

    private static String user = "postgres";
    private static String pass = "masterkey";
    private static String urlPrincipal = "jdbc:postgresql://localhost/dbunit"; // banco de dados do calima
    private static String urlDbDefault = "jdbc:postgresql://localhost/dbunitorigem"; // banco de dados com os dados para teste
    private static String driver = "org.postgresql.Driver";

    /**
     * Retorna a conexao com a base de dados Calima
     */
    public static IDatabaseConnection getConnectionPrincipal() throws
    				ClassNotFoundException, SQLException, DatabaseUnitException {
    	return getConn(urlPrincipal);
    }

    /**
     * Retorna a conexao com a base de dados contendo os dados default
     */
    public static IDatabaseConnection getConnectionDbDefault() throws
    				ClassNotFoundException, SQLException, DatabaseUnitException {
    	return getConn(urlDbDefault);
    }

    /**
     * Retorna a conexao do banco de dados passado em urlBanco, conecta apenas na mesma maquina
     */
    public static IDatabaseConnection getConn(String urlBanco) throws
    				ClassNotFoundException, SQLException, DatabaseUnitException {

        // Prompt utilizado pelo Hudson - nao apagar
        System.out.println("TESTE: DBUnit Conectando a Base de Dados " + urlBanco + " ...");

        Class.forName(driver);
        Connection jdbcConnection = DriverManager.getConnection(urlBanco, user, pass);
        return new DatabaseConnection(jdbcConnection);
    }

}
